﻿using CarAppDomain.CarType.Entities;
using CarAppDto.CarParts.CarPartsDtos;
using CarAppDto.CarType.VehicleSeriesDtos;
using D.UtilCore.Dtos;
using D.UtilSqlsugarOrm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CarAppDomain.CarType.IService
{
    public interface IVehicleSeriesService : IBaseService<VehicleSeriesEntity>
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        Task<ApiResult<int>> AddVehicleSeriesAsync(ReqAddVehicleSeries reqModel);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<ApiResult<int>> DeleteVehicleSeriesAsync(List<string> ids);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        Task<ApiResult<int>> UpdateVehicleSeriesAsync(ReqUpdateVehicleSeries reqModel);

        /// <summary>
        /// 查询列表
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        Task<ApiResult<List<RepVehicleSeries>>> QueryVehicleSeriesListAsync(ReqQueryVehicleSeriesList reqModel);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="reqQueryAdminPage"></param>
        /// <returns></returns>
        Task<ApiResult<PageModel<RepVehicleSeries>>> QueryVehicleSeriesPagesAsync(ReqQueryVehicleSeriesPage reqQueryPage);

        /// <summary>
        /// 查询单个
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<ApiResult<RepVehicleSeries>> GetVehicleSeriesAsync(string id);

        /// <summary>
        /// 添加配件
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<ApiResult<int>> AddCarParts(ReqCarPartsVehicleSeries model, string userId);

        /// <summary>
        ///  根据车型Id获取配件
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        Task<ApiResult<List<RepCarParts>>> GetCarPartsListByVehicleSeries(ReqQueryCarPartsVehicleSeriesPage reqModel);

        /// <summary>
        /// 删除配件车系
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<ApiResult<int>> DeleteCarParts(List<string> ids);
    }
}
